質問
私はしばらくの間、コンテンツのプロシージャル生成について多くのことを考えてきましたが、プロシージャル音楽に関する多くの実験は見たことがありませんでした。私たちはモデル、アニメーション、テクスチャを生成するための素晴らしい技術を持っていますが、音楽は依然として完全に静的であるか、単にレイヤー化されたループ(例:胞子)。
そのため、私は最適な音楽生成手法を考えてきましたが、他の人が何を考えているのか興味があります。これまで検討したことがなかったとしても、何がうまくいくと思いますか?回答ごとに 1 つのテクニックを使用し、可能な場合は例も含めてください。この技術では、既存のデータを使用することも、おそらく何らかの入力 (気分、速度など) に基づいて音楽を完全にゼロから生成することもできます。
解決
セルオートマトン-読み取り。
こちらも試してみてください。
編集:
rakkarageは、別のリソース http://www.ibmを提供しています。 com / developerworks / java / library / j-camusic /
他のヒント
最も成功したシステムは、おそらくいくつかの技術を組み合わせます。あらゆるジャンルの音楽でメロディー、ハーモニー、リズム、ベースシーケンスを生成するのに適したテクニックを見つけることはできないと思います。
たとえば、Markovチェーンは、メロディーおよびハーモニックシーケンスの生成に適しています。この方法では、既存の曲を分析してチェーン遷移確率を構築する必要があります。マルコフ連鎖の本当の美しさは、状態が何でも好きなものにできることです。
- メロディ生成の場合は、キー相対ノート番号を試してください(たとえば、キーがCマイナー、Cが0、Dが1、D#が2などの場合)
- ハーモニーを生成するには、コードのルート、コードのタイプ(メジャー、マイナー、ディミニッシュ、オーグメンテッドなど)とコードの反転(ルート、最初)のキー相対ノート番号の組み合わせを試してくださいまたは2番目)
ニューラルネットワークは、時系列予測(予測)は、既存の人気のあるメロディ/ハーモニーに対して訓練された場合に、音楽シーケンスを「予測」するのに等しく適していることを意味します。最終結果は、マルコフ連鎖アプローチの結果と同様になります。メモリフットプリントを削減する以外に、マルコフチェーンアプローチに対する利点は考えられません。
ピッチに加えて、生成された音符または和音のリズムを決定する期間が必要になります。この情報をマルコフ連鎖状態またはニューラルネットワーク出力に組み込むか、個別に生成して独立したピッチシーケンスとデュレーションシーケンスを組み合わせるかを選択できます。
遺伝的アルゴリズムを使用して、リズムセクションを進化させることができます。単純なモデルでは、バイナリ染色体を使用できます。最初の32ビットはキックドラム、2番目の32ビットはスネア、3番目の32ビットは閉じたハイハットなどです。この場合の欠点は、新しく進化したパターンの適合性を評価するために継続的な人間のフィードバックが必要になることです。
エキスパートシステムを使用して、他の手法で生成されたシーケンスを検証できます。このような検証システムの知識ベースは、おそらく、優れた音楽理論の本やWebサイトから削除できます。 Ricci Adamsの musictheory.net をお試しください。
これらの手法に関する50年以上の研究がありますが、コンピューター音楽やアルゴリズムの構成の歴史に精通していない開発者には見落とされがちです。これらの問題に対処するシステムおよび研究の多数の例がここにあります:
簡単でやや効果的なアルゴリズムは、1 / fノイズ別名「ピンクノイズ」を使用することです。音階から音長と音符を選択する。これは音楽のように聞こえますが、良い出発点になります。
より良いアルゴリズムは、「マルコフチェーン」を使用することです。いくつかのサンプル音楽をスキャンし、確率の表を作成します。最も単純なケースでは、CがAに続く可能性が20%のようなものになります。これを改善するには、過去のいくつかの音符のシーケンスを見てください。 15%の後にBが続き、4%の後にBbなどが続く可能性があります。その後、前に選択したメモの確率を使用してメモを選択します。この非常に単純なアルゴリズムは、かなり良い結果を生成します。
Dmitri Tymoczkoには興味深いアイデアと例があります:
http://music.princeton.edu/~dmitri/whatmakesmusicsoundgood.html
私のソフトウェアは、進化論を応用して「成長」させています。音楽。このプロセスは、リチャードドーキンスのブラインドウォッチメーカープログラムに似ています-MusiGenesisは音楽要素をランダムに追加し、その後、ユーザーは追加された各要素を保持するかどうかを決定します。アイデアは、あなたが好きなものを維持し、正しく聞こえないものを捨てることであり、それを使用するために音楽的なトレーニングをする必要はありません。
インターフェースは吹きますが、古いです-私を訴えます。
私は、iMuse システムを使用した古い Lucasarts ゲームがずっと好きでした。iMuse システムは、ゲーム用に終わりのないリアクティブなサウンドトラックを生成し、非常に音楽的でした (そのほとんどは依然として作曲家によって作成されていたため)。仕様 (特許を含む) はここで確認できます。http://en.wikipedia.org/wiki/IMUSE
任天堂は、今でも iMuse と同様のアプローチを使用して、その場で音楽を作成したり、音楽に影響を与えたりしている唯一の企業のようです。
あなたのプロジェクトがよほど実験的なものでない限り、私は作曲家の使用を放棄しません。本物の人間の作曲家は、アルゴリズムよりもはるかに音楽的で聴きやすい結果を生み出すでしょう。
詩を書くのと比べてみてください。非常に前衛的に聞こえるナンセンスな詩を簡単に生成することはできますが、アルゴリズムを使用してシェイクスピアを再現することは、控えめに言っても困難です。
SoundHelix(http://www.soundhelix.com)をご覧になりましたか?これは、アルゴリズムのランダムな音楽を作成するためのオープンソースのJavaフレームワークであり、非常にきれいな音楽を生成します。 SoundHelixは、スタンドアロンアプリケーションとして、Webページに埋め込まれたアプレットとして、JNLPベースのアプレットとして使用するか、独自のJavaプログラムに含めることができます。
SoundHelixで生成された例は、次の場所にあります: http://www.soundhelix.com/audio-examples
非退屈な手続き型音楽生成の研究はさかのぼります。 Computer Music Journalの新旧号を閲覧する http://www.mitpressjournals.org/cmj (実際のドメイン名はありませんか?)音楽合成のティンカー、はんだごての騎手、ビット遊牧民、学術研究者への実際の使用に関する記事。主要な書店で見つけることができるいくつかの雑誌のようなふわふわしたレビューとインタビューのぼろきれです。
このような大きな課題。 iPadアプリ、Thicket、またはmorganpackard.comのRippleソフトウェアをご覧ください。私の経験では、動的な音楽生成に対するアカデミックなアプローチのほとんどは、アカデミックに聞こえるものを思い付きます。もっと成功したものは、クラブ/エレクトロニカの世界の端にあると思います。この点で、モノレイクは私のヒーローです。非常に聞き取りやすいもの、非常に多くのコンピューター生成。私自身の音楽も悪くありません。ポール・ランスキーの「アルファベットブック」は、特に彼がアカデミックな男であることを考えると、非常に聞き取りやすいアルゴリズム音楽の良い例です。
私が検討してきた手法は、小節までの小さな音楽パターンを作成することです。これらのパターンに「興奮」、「強烈」などの感情識別子をタグ付けします。状況に合わせて音楽を生成する場合は、これらのタグに基づいていくつかのパターンを選択し、演奏したい楽器を選択します。楽器に基づいて、パターンを組み合わせる方法を見つけます(たとえば、ピアノでは、手のスパンに応じてすべてを一緒に演奏できる場合があり、ギターでは、連続してノートを演奏する場合があります)、それをPCMにレンダリングします。さらに、キーの変更、速度の変更、エフェクトの追加などができます。
Algorithmic Composition は良い本です。使用されるいくつかの方法のツアー:
"取り上げるトピック:マルコフモデル、生成文法、遷移ネットワーク、カオスと自己相似性、遺伝的アルゴリズム、セルオートマトン、ニューラルネットワーク、人工知能。
これはこの幅広いトピックの出発点としては適切ですが、各方法がどのように機能するかを詳細に説明することはありません。それぞれの概要を説明していますが、それらについての知識がまだない場合には不十分です。
90年代後半、Microsoftは「インタラクティブミュージックコントロール」と呼ばれるActiveXコントロールを作成しました。あなたが探しているものを正確に行いました。残念ながら、彼らはプロジェクトを放棄したようです。
あなたが望んでいることではありませんが、コンテンツベースの音楽の類似性。
音楽がどのように結びつくかについてより深い理論に興味がある場合は、ビルセタレスサイトいくつかの興味深い工夫があります。
このプロジェクトの提案-" 8.1 " 「プログラミング言語の理論と実践」からコペンハーゲン大学の研究グループ-CS学科:
8.1音楽コーパスの自動収集と統計分析
楽譜の伝統的な分析 1人以上で構成されています リズム、コードシーケンスの分析、 単一の他の特性 作品、しばしばの文脈で設定 による他の部分のあいまいな比較 同じ作曲家または他の作曲家 同じ期間から。
伝統的な 音楽の自動分析はかろうじて 楽譜を扱いましたが、焦点を合わせました 信号分析との使用 機械学習技術を抽出する そして、例えば、気分や ジャンル。対照的に、初期の研究 DIKUでは、の一部を自動化することを目指しています 楽譜の分析。追加された 値は抽出の可能性です 大量の情報 簡単にできない楽譜 手で、意味のあることはできません 機械学習により分析 テクニック。
これは-私が見るように-あなたの質問の反対方向です-生成されたデータ-私は想像します-音楽の手続き型生成のいくつかの例で使用できます。
生成的な音楽は、厳密な選択プロセスを経た場合にのみ機能すると考えています。アルゴリズム音楽の先駆者であるデイビッド・コープは、彼のアルゴリズム(主にマルコフチェーンに基づいていると思います)から数時間の音楽出力を経て、実際にうまくいくいくつかを選び出しました。
この選択プロセスは、特定の音楽スタイルの特徴をモデリングすることで自動化できると思います。たとえば、「ディスコ」スタイルは、バックビートにスネアのあるオフビートとドラムパーツを特徴とするベースラインに多くのポイントを付与しますが、非常に不協和なハーモニーにはポイントを差し引きます。
実際、作曲プロセスは非常に多くの慣用的な慣行で満たされているため、特定の分野の知識がなければモデリングするのは非常に困難です。
手続き型音楽用のPythonモジュールに取り組んでいます。音符、音階、コード構成について知っていることをプログラムし、それらの制約からコンテンツをランダムに生成できるようにしました。特にその主題をよりよく理解している人によって、そのようなシステムが教えることができる理論とパターンがもっとあると確信しています。次に、これらのシステムを遺伝的アルゴリズムまたはランダム化されたコンテンツ生成の制約として使用できます。
私の実装こちら、特にランダムに生成されたリードの例は、役に立つかもしれません。コードの進行をしっかりと理解している人は、そのようなテクニックから曲の構造を作成し、そのような制約のあるランダムなメロディーを実装できます。私の音楽理論の知識はそこまで拡張されていません。
ただし、基本的には、生成する音楽の種類の理論をエンコードし、その理論の範囲を手続き的に探索するためのアルゴリズムの制約として使用する必要があります。